/**
 *  晨烨科技element ui表单验证 注册
 */
/**
 * 各类表单规整
 *
 */


let _Cyoption = {
    Email: /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/, //  Email地址：
    isPhone: /^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17[5-8])|(18([0-3]|[5-9])))\d{8}$/, //手机号码：
    identitycard: /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}([0-9]|X)$/, //身份证号(18位数字)：
}




const Validator = {
    /*手机号字符串校验，返回true/false*/
    /*获取elem手机规则校验器*/
    getPhoneValidator() {
        var validPhone = (rule, value, callback) => {
            if (!value) {
                callback(new Error('请输入手机号码'))
                return false;
            } else if (!_Cyoption.isPhone.test(value)) { /*正则验证*/
                callback(new Error('请输入正确的11位手机号码'))
                return false;
            } else {
                callback()
            }
        }
        return validPhone
    },
    /*邮箱字符串校验，返回true/false*/
    /*获取elem邮箱规则校验器*/
    getEmailValidator() {
        var validEmail = (rule, value, callback) => {
            if (!value) {
                callback(new Error('请输入邮箱'))
                return false;
            } else if (!_Cyoption.Email.test(value)) {
                callback(new Error('请输入正确格式的邮箱'))
                return false;
            } else {
                callback()
            }
        }
        return validEmail
    },
    /*身份证字符串校验，返回true/false*/
    /*获取elem身份证校验器*/
    getIdentitycardValidator() {
        var validIdentitycard = (rule, value, callback) => {
            if (!value) {
                callback(new Error('请输入身份证号码'))
                return false;
            } else if (!_Cyoption.identitycard.test(value)) {
                callback(new Error('请输入正确格式身份证号码'))
            } else {
                callback()
                return false;
            }
        }
        return validIdentitycard
    },
}


// 对Validator的实例重新封装成一个plugin ,方便 Vue.use(xxxx)  
export default {
    install: function(Vue, Option) {
        Object.defineProperty(Vue.prototype, "$valid", { value: Validator });
    }
};